package com.example.flshtarvel.mapper;

import com.example.flshtarvel.entity.Tag;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.sql.ResultSet;
import java.util.List;

@Mapper
public interface TagMapper {

    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag_id=#{tagId}")
    public Tag selectTagById(String tagId);

    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag_name like #{likeSql}")
    public List<Tag> selectTagByName(String likeSql);

    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag_name=#{tagName}")
    public Tag selectTag(String tagName);

    //查询所有标签 通过标签类型id
    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag.tag_type_id=#{tagTypeId} limit #{offset},#{size}")
    public List<Tag> selectAllTagByTagTypeId(String tagTypeId, int offset, int size);

    //查询所有标签记录数  通过标签类型id
    @Select("select count(*) from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag.tag_type_id=#{tagTypeId}")
    public int selectTagCountByTagTypeId(String tagTypeId);

    @Insert("insert into tag(tag_type_id,tag_id,tag_name) value(#{tagTypeId},#{tagId},#{tagName})")
    public int insertTag(Tag tag);

    @Delete("delete from tag where tag_id=#{tagId}")
    public int deleteTagById(String tagId);

    //只搜索地点标签  通过标签名
    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id and tag_type.tag_type_name='地点标签' and tag.tag_name like #{tagName} ")
    public List<Tag> selectAddressTagByName(String tagName);

    //查询所有标签
    @Select("select * from tag,tag_type where tag.tag_type_id=tag_type.tag_type_id")
    public List<Tag> selectAllTag();
}
